✅Use logging for debugging output
I debugged the output with print, and it was too much work to display what I wanted, so I felt it was a shame to delete it, so I left it commented out, and now I need it again.
You can use logging instead of print for that kind of thing.
before
code:action.py
score = score_for_single_arg_question(env, qid, k, maxScore)
# print(repr(questionsqid(env, (k,))), k, score) after
code:action.py
import logging
logger = logging.getLogger(__name__)
...
logger.debug((res, k, score))
This is not the main topic here [✅ Make the debugging display of question candidates easier to read
If you set the log level to DEBUG only when a specific condition is met in the code on the side that calls the module, debug output will be generated only then.
Since __name__ in action.py is "server.keicho.action" which represents the package hierarchy, you can use it to select a part of the entire source code and turn on/off debugging display.
code:python
import logging
logging.basicConfig()
...
if some_condition:
logging.getLogger("server.keicho.action").setLevel(logging.DEBUG)
else:
logging.getLogger("server.keicho.action").setLevel(logging.INFO)
---
This page is auto-translated from /nishio/✅デバッグ出力にloggingを使う. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I'm very happy to spread my thought to non-Japanese readers.